Within the field of computer systems, computer peripheral devices (e.g., keyboard, display screen, lightpen, mouse, printer, speakers, scanner, etc.) are coupled to a computer system to enable the host processor to control and communicate with these peripheral devices. The Universal Serial Bus architecture is one type of mechanism used within the computer industry to couple peripheral devices to a computer system. The Universal Serial Bus architecture was developed to be a simple and cost-effective and standardized alternative to previously used peripheral buses or interfaces.
The Universal Serial Bus (USB) architecture is different from other types of peripheral buses (e.g., peripheral component interconnect or PCI bus). One of the main differences between the Universal Serial Bus architecture and other types of peripheral bus architectures is that the USB architecture does not allow all the peripheral devices to be coupled to the same peripheral bus lines. Instead, the USB architecture is a point to point interface so that only one device, the USB host controller, is actually coupled to the Universal Serial Bus. Peripherals then communicate with the USB host controller. The USB architecture utilizes a hierarchical structure which involves the use of hubs or ports to provide a separate USB interface for each peripheral device. A hub is an intermediate routing center of multiple USB ports to which peripheral devices can be coupled.
The Universal Serial Bus architecture is a low cost interface that is likely to become ubiquitous and is suitable for connecting low-cost, low transfer rate peripheral devices to a computer system, but it has a major disadvantage associated with it. The main disadvantage associated with the USB architecture is that it does not have any real-time capability, which is defined as the ability to accurately determine the actual time of an event's occurrence relative to the computer system clock. One of the main reasons that the USB architecture does not have any real-time capability is that it polls the peripheral devices coupled to it instead of allowing the peripheral devices to directly interrupt the host processor of the computer system. Another reason the USB architecture does not have any real-time capability is that no precise timing information is communicated across the USB interface. Furthermore, the lack of any real-time capability within the USB architecture is also attributed to the fact that the 1 ms USB frames are asynchronous and completely indeterminate to the host processor of the computer system. So the USB architecture precludes the accurate determination of the specific instant in time that an event occurred within a peripheral device.
The inability for USB architecture to provide real-time capability precludes the use of certain types of peripheral devices with computer systems that utilizes USB architecture. For example, a lightpen device used in conjunction with a computer-aided design (CAD) program requires real-time capability to operate properly. Therefore, a lightpen cannot operate properly coupled to a prior art computer system that employs the USB architecture.
Another type of device, that is closely related to a lightpen, that cannot operate properly coupled to USB architecture is an aiming device used in conjunction with a software game in which the game player aims and shoots at targets on the display screen and the game responds in some suitable manner.
Therefore, it would be advantageous to provide a method and system that allows the USB architecture to have real-time capability in determining the actual time of an event's occurrence within a peripheral device that communicates with the host processor via the USB architecture. The present invention provides this advantage.